---
title: Contributing integrations
sidebarTitle: Guide
---

<Icon icon="plug-circle-plus" size={32} />
**Integrations are a core component of LangChain.**

LangChain provides standard interfaces for several different components (language models, vector stores, etc) that are crucial when building LLM applications. Contributing an integration helps expand LangChain's ecosystem and makes your service discoverable to millions of developers.

## Why contribute an integration to LangChain?

<CardGroup cols={3}>
    <Card title="Discoverability" icon="magnifying-glass">
        LangChain is the most used framework for building LLM applications, with over 20 million monthly downloads.
    </Card>

    <Card title="Interoperability" icon="arrows-rotate">
        LangChain components expose a standard interface, allowing developers to easily swap them for each other. If you implement a LangChain integration, any developer using a different component will easily be able to swap yours in.
    </Card>

    <Card title="Best Practices" icon="star">
        Through their standard interface, LangChain components encourage and facilitate best practices (streaming, async, etc.) that improve developer experience and application performance.
    </Card>
</CardGroup>

## Components to integrate

While any component can be integrated into LangChain, there are specific types of integrations we encourage more:

<Tabs>
    <Tab title="Integrate these ✅">
        - **Chat Models**: Most actively used component type
        - **Tools/Toolkits**: Enable agent capabilities
        - **Retrievers**: Core to RAG applications
        - **Vector Stores**: Essential for semantic search
        - **Embedding Models**: Foundation for vector operations
    </Tab>
    <Tab title="Not these ❌">
        - **LLMs (Text-Completion Models)**: Deprecated in favor of Chat Models
        - **Document Loaders**: High maintenance burden
        - **Key-Value Stores**: Limited usage
        - **Document Transformers**: Niche use cases
        - **Model Caches**: Infrastructure concerns
        - **Graphs**: Complex abstractions
        - **Message Histories**: Storage abstractions
        - **Callbacks**: System-level components
        - **Chat Loaders**: Limited demand
        - **Adapters**: Edge case utilities
    </Tab>
</Tabs>

## How to contribute an integration

<Steps>
    <Step title="Confirm eligibility">
        Verify that your integration is in the list of encouraged components we are currently accepting.
    </Step>

    <Step title="Implement your package">
        <Card title="How to implement a LangChain integration" icon="link" href="/oss/contributing/implement-langchain" arrow />
    </Step>

    <Step title="Pass standard tests">
        If applicable, implement the [standard tests](/oss/contributing/standard-tests-langchain) for your integration and successfully run them.
    </Step>

    <Step title="Publish integration">
        <Card title="How to publish an integration" icon="upload" href="/oss/contributing/publish-langchain" arrow />
    </Step>

    <Step title="Add documentation">
        Open a PR to add documentation for your integration to the official LangChain docs.

        <Accordion title="Integration documentation guide" icon="book">
            An integration is only as useful as its documentation. To ensure a consistent experience for users, docs are required for all new integrations. We have a standard starting-point template for each type of integration for you to copy and modify.

            In a new PR to the LangChain docs repo, create a new file in the relevant directory under `src/oss/python/integrations/<component_type>/integration_name.mdx` using the appropriate template file:
            - [Chat models]()
            - [Tools and toolkits]()
            - [Retrievers]()
            - [Text splitters]()
            - [Embedding models]()
            - [Vector stores]()
            - [Document loaders]()
            - [Key-value stores]()
        </Accordion>
    </Step>

    <Step title="Co-marketing" icon="megaphone">
        **Optional**: Engage with the LangChain team for joint [co-marketing](/oss/contributing/comarketing).
    </Step>
</Steps>

